package cz.mff.cuni.dpp.liboptions;

import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;

import org.junit.Before;
import org.junit.Test;

@SuppressWarnings({ "rawtypes", "unchecked" })
public class CallbackTest {

	// TODO dodelat
	private Options options;

	private SwitchOption switchOption;
	private IntegerOption integerOption;
	private StringOption stringOption;
	private EnumOption enumOption;

	private LinkedList<Option> calledWithValue = new LinkedList<Option>();
	private Map<Option, Object> calledValues = new HashMap<Option, Object>();
	private LinkedList<Option> calledWithoutValue = new LinkedList<Option>();

	private OptionCallback universalCallback = new OptionCallback() {

		@Override
		public void handleOptionValue(Object parameter) {

		}

		@Override
		public void handleNotPresent() {
			// TODO Auto-generated method stub
		}
	};

	@Before
	public void prepare() {
		switchOption = new SwitchOption.Builder("s").setCallback(universalCallback).buildOption();
		integerOption = new IntegerOption.Builder("i", "I").setCallback(universalCallback)
				.buildOption();
		stringOption = new StringOption.Builder("s", "S").setCallback(universalCallback)
				.buildOption();
		enumOption = new EnumOption.Builder("e", "E").setCallback(universalCallback).buildOption();
	}

	@Test
	public void test() {
	}
}
